package edu.ucsur.tp.contactcenter.forms;

import java.awt.EventQueue;

import javax.swing.JInternalFrame;
import javax.swing.JLabel;

import java.awt.BorderLayout;

import javax.swing.JDesktopPane;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.ImageIcon;

import net.miginfocom.swing.MigLayout;

import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.factories.FormFactory;
import com.jgoodies.forms.layout.RowSpec;

import java.awt.CardLayout;
import java.awt.FlowLayout;
import java.beans.PropertyVetoException;
import java.sql.ResultSet;
import java.util.List;

import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.DefaultTableModel;
import javax.swing.JComboBox;
import javax.swing.JTextPane;
import javax.swing.DefaultComboBoxModel;

import edu.ucsur.tp.beans.*;
import edu.ucsur.tp.negocio.mantenimientos.UsuarioNego;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import edu.ucsur.tp.contactcenter.utiles.*;

public class FrmUsuariosLista extends JInternalFrame {
	
	private UsuarioNego usuarioNegocio = new UsuarioNego();
	
	private JTable tbUsuarios;
	private JDesktopPane desktop;
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					FrmUsuariosLista frame = new FrmUsuariosLista();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	
	public FrmUsuariosLista(final JDesktopPane desktop) {
		this();
	    this.desktop = desktop;
	}
	
	/**
	 * Create the frame.
	 */
	public FrmUsuariosLista() {
		
		setFrameIcon(new ImageIcon(FrmUsuariosLista.class.getResource("/edu/ucsur/tp/contactcenter/images/Businessman.png")));
		setTitle("Lista de Ususarios");
		setClosable(true);
		try {
			setIcon(true);
		} catch (PropertyVetoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		setBounds(100, 100, 802, 474);
		getContentPane().setLayout(null);
		
		JButton cmdSalir = new JButton("");
		cmdSalir.setIcon(new ImageIcon(FrmUsuariosLista.class.getResource("/edu/ucsur/tp/contactcenter/images/salir.png")));
		cmdSalir.setBounds(737, 394, 39, 40);
		getContentPane().add(cmdSalir);
		
		JButton cmdNuevo = new JButton("");
		cmdNuevo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				FrmUsuariosRegistro frm = new FrmUsuariosRegistro();
				desktop.add(frm);
				GUIUtils.moveToFront(frm); 
				frm.setVisible(true);
			}
		});
		
		cmdNuevo.setIcon(new ImageIcon(FrmUsuariosLista.class.getResource("/edu/ucsur/tp/contactcenter/images/nuevo.png")));
		cmdNuevo.setBounds(699, 394, 39, 40);
		getContentPane().add(cmdNuevo);
		
		JButton cmdModificar = new JButton("");
		cmdModificar.setIcon(new ImageIcon(FrmUsuariosLista.class.getResource("/edu/ucsur/tp/contactcenter/images/modify.png")));
		cmdModificar.setBounds(661, 394, 39, 40);
		getContentPane().add(cmdModificar);
		
		JButton cmdEliminar = new JButton("");
		cmdEliminar.setIcon(new ImageIcon(FrmUsuariosLista.class.getResource("/edu/ucsur/tp/contactcenter/images/delete.png")));
		cmdEliminar.setBounds(622, 394, 39, 40);
		getContentPane().add(cmdEliminar);
		
		JButton cmdExcel = new JButton("");
		cmdExcel.setIcon(new ImageIcon(FrmUsuariosLista.class.getResource("/edu/ucsur/tp/contactcenter/images/excel.png")));
		cmdExcel.setBounds(583, 394, 39, 40);
		getContentPane().add(cmdExcel);
		
		JButton cmdBuscar = new JButton("");
		cmdBuscar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				CargaUsuarios();
			}
		});
		cmdBuscar.setIcon(new ImageIcon(FrmUsuariosLista.class.getResource("/edu/ucsur/tp/contactcenter/images/search.png")));
		cmdBuscar.setBounds(737, 11, 39, 40);
		getContentPane().add(cmdBuscar);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(10, 62, 766, 321);
		getContentPane().add(scrollPane);
		
		tbUsuarios = new JTable();
		tbUsuarios.setModel(new DefaultTableModel(
			new Object[][] {
			},
			new String[] {
					"Id Usuario","Nombres","Apellidos", "Perfil", "Estado"
			}
		));
		scrollPane.setViewportView(tbUsuarios);
		
		JLabel lblTotal = new JLabel("Total Usuarios: 0");
		lblTotal.setBounds(10, 394, 155, 14);
		getContentPane().add(lblTotal);
		
		
		
		JComboBox cbPerfil = new JComboBox();
		cbPerfil.setBounds(76, 22, 185, 20);
		getContentPane().add(cbPerfil);
		
		List<String> listaPerfil = usuarioNegocio.listaPerfiles();
		cbPerfil.addItem("00 - Todos");
		for (String it : listaPerfil) {
			cbPerfil.addItem(it);
		}
		
		JLabel lblNewLabel = new JLabel("Perfil");
		lblNewLabel.setBounds(10, 25, 46, 14);
		getContentPane().add(lblNewLabel);
		
		JLabel lblEstado = new JLabel("Estado");
		lblEstado.setBounds(287, 25, 46, 14);
		getContentPane().add(lblEstado);
		
		JComboBox cbEstado = new JComboBox();
		cbEstado.setModel(new DefaultComboBoxModel(new String[] {"[Todos]", "Activos", "Inactivos"}));
		cbEstado.setBounds(353, 22, 185, 20);
		getContentPane().add(cbEstado);

	}

	
	public void CargaUsuarios(){
		
		List<UsuarioBean> listado = 
				usuarioNegocio.obtenerUsuarios();
		
		String Titulo[]={"Id Usuario","Nombres","Apellidos", 
				"Perfil", "Estado"};
		String registros[]=new String[5];
		
		DefaultTableModel modelo = new DefaultTableModel(null,Titulo);
		
		for (UsuarioBean u : listado){
			registros[0] = u.getId_usuario();
			registros[1] = u.getNombres();
			registros[2] = u.getApellidos();
			registros[3] = u.getPerfil_nombre();
			registros[4] = u.estado_nom();
			
			modelo.addRow(registros);
		}
		
		tbUsuarios.setModel(modelo); 
		
		
	}

}
